Passa al contenuto principale

Piantala Elettrica Virtuale

suggerimento

Il Protocollo VPP si basa sul Protocollo Live MQTT. Si prega di fare riferimento a questa pagina prima di procedere. Vedi Controllo MQTT Live.

suggerimento

L'impostazione iniziale del VPP DEVE essere eseguita da Eniris. Si prega di contattare Eniris prima di seguire i passaggi successivi.

Collegamento al Broker MQTT

Si prega di fare riferimento alla seguente sezione per scoprire come collegarsi al Broker MQTT di Eniris: Collegamento al Broker MQTT

Funzionalità VPP

Il VPP è progettato per ricevere un punto di comando/strategia per gruppo di dispositivi (ad esempio, Solare, Accumulo) e aggregare il punto di comando tra i controllori connessi al VPP.

Mentre il Protocollo Live MQTT invierebbe un comando a un singolo controllore, il VPP consente all'utente di inviare un comando a un gruppo di controllori.

Immagine 1

Aggiunta di Controllori al VPP

Immagine 1
Immagine 1
Immagine 1
Immagine 1

Quando si aggiunge il Segnale MQTT di Eniris, viene mostrato un campo VPP ID. Inserire il VPP ID ricevuto qui.

Inserire VPP ID
Immagine 1

Algoritmo di Aggregazione

I punti di comando sono aggregati in base alla capacità dei dispositivi che rientrano nei controllori individuali.

Argomenti MQTT

Una volta completata l'impostazione iniziale, verranno forniti un VPP ID e un Nome Utente MQTT (e password).

Argomento In Entrata

Argomento: vpp/{MQTT Username}/{VPP ID}

Questo argomento viene utilizzato dall'utente per inviare un comando aggregato al VPP.

Corpo:

{
"msg_id": <Incremental message id>(int),
"vpp_id": <VPP ID>(str)
"time": "<Unix Timestamp>(int)",
"fields": {
"<Component Policy>": "<Policy Type>",
"<Component Power Setpoint>": <Setpoint in watts>
}
}

Le politiche e i punti di comando dei componenti possono essere trovati qui: Componenti e Politiche MQTT

Argomento di Riconoscimento

Argomento: vpp/{MQTT Username}/{VPP ID}/acknowledgement

Dopo che un comando è stato inviato, il VPP risponderà con un riconoscimento, indicando se il comando è stato ricevuto con successo o meno.

Corpo:

{
"payload": {
"fields": {
"responseCode": <Success/Failure Code>(int),
"ack": <Acknowledgement Message>(str)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}

Argomento di Feedback

Argomento: vpp/{MQTT Username}/{VPP ID}/feedback

L'argomento di feedback contiene il feedback restituito dai singoli controllori.

Corpo:

{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Feedback Dict>(dict)
},
"target": <Site Node ID>(str)
},
"message_type": <Type of Message>(str)
}

La struttura del dizionario di feedback può essere trovata qui: Struttura del Payload di Feedback MQTT

Argomento di Feedback Aggregato

Argomento: vpp/{MQTT Username}/{VPP ID}/aggregated_feedback

Il VPP aggrega il feedback ricevuto da ciascun controllore individuale.

Corpo:

{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Aggregated Feedback Dict>(dict)
},
},
"message_type": <Type of Message>(str)
}

Il dizionario di feedback aggregato è strutturato in modo simile alla Struttura del Payload di Feedback MQTT. Tuttavia, i valori delle stringhe, come le strategie eseguite, non possono essere aggregati e quindi non sono inclusi.

Argomento di Comandi Inviati

Argomento: vpp/{MQTT Username}/{VPP ID}/dispatched_commands

Quando i comandi vengono inviati ai controllori dal VPP, ciò viene segnalato utilizzando questo argomento.

Corpo:

{
"payload": {
"aggregated": {
<Component Name>(str): <CommandPower Value>(float)...
},
"dispatched_commands": [
<List of individual commands sent to the controllers>
],
},
"message_type": <Type of Message>(str)
}

La struttura del payload dei singoli comandi inviati può essere trovata qui: Struttura del Payload di Feedback MQTT.

Argomento di Avviso

Argomento: vpp/{MQTT Username}/{VPP ID}/warning

Se si verifica un errore o un avviso nel VPP, un messaggio verrà inviato tramite questo argomento MQTT.

Corpo:

{
"payload": {
"fields": {
<Field Dictionary>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}